跳到主要内容

性能分析

用于分析一段代码的调用耗时

local tracer = require 'base.tracer'

使用说明

新创建一个 tracer, 将要分析的代码段,放于 start() 和 finish() 之间:

local function b()
local j = 1
for i = 1, 100 do
j = j * i
end
end

local function a()
b()
end

local function test()
for i = 1, 100 do
a()
end
end

-- 测试 test 的性能
local tracer = require 'base.tracer'
local t = tracer.new()
t:start()
test()
t:finish()

执行完毕后,会在控制台输出函数堆栈,及各个函数的调用耗时,如:

 test:43                        0.85ms  1
-- a:39 0.84ms 100
---- b:32 0.54ms 100
finish:127 0.01ms 1
-- sethook:-1 0.00ms 1

其中,第一列为函数名及函数定义所在的行号,如果为系统 api,行号为 -1

第二列是调用函数的总耗时

第三列是调用函数的总次数